using System;
using System.Net.Http;
using System.Net.Http.Formatting;

namespace Tavis.Interfaces {
    public interface ISemanticsRegistry {
		// Put stuff in (for client)
        void RegisterFormatter(MediaTypeFormatter formatter);
        void RegisterLinkExtractor(ILinkExtractor linkExtractor);

        void RegisterBookmark(string key, ILink bookmarkLink);
		void RegisterStaticContent(ILink link, Func<HttpContent> contentSource);

		void RegisterLinkType<T>(string relationToMapToType) where T : ILink;
    }
}
